This invention relates to a new method and means for controlling the process of designing the layout of a computer-generated graph. More specifically, it relates to automatic adjustment of layout-determining graph detail design parameter values in response to a complement of design control parameter values that are selectively entered by a user at a relatively high level of abstraction in a computer-generated graphics system.
In prior art graphics systems, graphics hardware and software permit a highly skilled user to produce graphs of high quality. However, in the hands of a user having no skill in the design of graphs or in the use and manipulation of graphics software and hardware, graph design usually results from a series of predetermined default assumptions made by the graphics system once a user indicates to the system an output device, the type of graph to be produced on the device and the data the graph is to display. The default assumptions controlling the basic graph design are then determined according to the selected device and graph type.
The detail design parameter values assembled by the design default assumptions are the set of values specifying all attributes of a graph that may be adjusted. Such detail design parameters include (but are not limited to) the color, background color, character size, type style, location, and angle of every piece of text annotating the graph (e.g. title, x- and y-axis legends, explanatory texts); the color, thickness, texture (dot-and-dash pattern), length, and location of every line; the color, pattern, background color and outline color of every polygon; and other specifics such as protected (blanked) areas, and axis scaling.
For example, in FIG. 1, a page 6 has three graphs 7-9 that present different aspects of an organization's financial profile. Among the detail design parameter values of interest in the design of the page 6 are those which affect the overall layout of the page such as its aspect ratio, its height and width, the position and dimensions of the page title, whether dimensions on the page are to be in inches or centimeters, the dimensions of a margin provided at the top of the page for the holes used to bind the page in a report, the thickness of lines used to draw the frames of the graphs 714 -9, and so on.
For each of the graphs 714 -9, detail design parameter values of interest include the origin, length, and height of the X and Y axes in the bar chart 7 and the line graph 9, the center and radius of the circle in the pie chart 8, the position and dimensions of the graph titles and annotations, thickness and texture of the lines used to draw curves and polygons, the positions of the graphs on the page, the sequence, shades, and textures of the colors used in the background, polygons, lines, pie slices, and bars used in the graphs, and the drawing order of the graphs.
The graph designer is also interested in affecting detail design parameter values determining type and style of text used at all titles, legends, messages, and annotations on the page or in the graphs.
Because a graph is often intended to be used for particular or unique circumstances, the detail design parameter values selected by default may be inadequate to produce a graph suited to the circumstances. In such cases, the user must intervene and modify the default graph design. To produce a graph better suited to its intended use and to the output device producing it than the default graph, the user must specify the detail design parameter values for all the details that should differ from the default assumptions provided by the system. The details to be changed may be very numerous, making the custom design effort a large task. It is also a task that requires a user having substantial graphical skills.
The principal reason that custom graph design in prior art systems requires so much skill and time of the user is that detail graph design parameters are accessible only at a lower level of system abstraction than the data to be graphed. Often, to fully control the design parameters of a graph, a skilled used must manipulate graphical primitives such as line segments, polygons, etc. Becuase these parameters are accessible only at a low level of abstraction, the user must deal with a large volume of information, making specification on this level a burdensome task.